The present invention generally relates to a codec for digital data, and more particularly to a method and system for digitally decompressing video data on embedded devices.
Over the years, portable (or hand-held) game machines have been, and continue to be, very popular. Typically, these portable game machines include a hand-held game machine housing a display for displaying images and a game processing unit, and associated hardware for running a game program. The game program itself is typically contained in a game program memory such as, for example, a semiconductor memory (e.g., ROM, EPROM, etc.) that is part of a removable cartridge. By storing the game program in a removable cartridge, the user can conveniently and easily change the game being played by simply exchanging one cartridge with another, different cartridge containing a different game. Examples of portable game machines are the “Game Boy®” and “Game Boy® Color” products manufactured and sold by Nintendo of America Inc.
Generally, the functionality of conventional portable game machines of the type described above is directed to executing, on the hand-held processing unit, the game that is provided to the game program memory from a particular removable cartridge in response to user input. When using the portable game machine, visual and auditory feedback is provided to the user. The visual and auditory content is stored in compressed form in the removable cartridge along with programming information to instruct the processor for decompressing the content. The visual content is provided to the user on a color or monochrome display, such as a liquid crystal display (LCD), and the auditory content is provided via a speaker that is part of the hand-held unit or via a headphone jack.
A prior art embedded device is illustrated in FIGS. 1A, 1B, and 1C, which show a portable (hand-held) color display game machine (hereinafter, referred to simply as “game machine”) 10 that displays game characters in color on a color liquid crystal display (LCD) 16 when a prior art color-ready game cartridge 12 is selectively inserted into a slot 18, and in FIG. 2 as an overall block diagram of the game machine and game cartridge. Batteries (not shown), e.g., 2 AA batteries provide power for game machine 10, which may also be configured for connection to an AC adapter to permit extended use without batteries. Game machine 10 is a prior art game machine and is described, for example, in U.S. Pat. No. 6,716,103, incorporated herein by reference.
The color LCD 16 displays either color or black and white depending on the type of game cartridge 12 inserted into the game machine 10. With reference to FIG. 2, prior art game machine 10 includes color LCD 16 as described above, and is formed as a dot matrix display and is driven by LCD drivers 22 and 24 to display color images on its screen. LCD driver 22 selectively drives, for example, the rows of the dot matrix display and LCD driver 24 selectively drives, for example, the columns of the dot matrix display. LCD drivers 22, 24 are supplied with color image signals from a color display processing circuit 28 included in a central processing unit (CPU) 25.
CPU 25 further includes a CPU core 30 that is connected to an internal read only memory (ROM) 32 and an internal random access memory (RAM) 34. Internal RAM 34 is used as a work memory of CPU core 30. CPU 25 further includes a basic oscillator 36, for example, a quartz oscillator that supplies an oscillating signal to a programmable frequency divider 38. Programmable frequency divider 38 divides the oscillating signal from basic oscillator 36 in accordance with frequency division data from CPU core 30, and supplies a divided signal as a clock of CPU core 30.
Programs for operating game machine 10 are provided through a connector 40 connected to CPU 25 by an appropriate bus. More specifically, game cartridge 12 shown in FIG. 1A is selectively attachable to connector 40. Game cartridge 12 is preferably in the form of a replaceable memory cartridge that can be inserted into slot 18 of game machine 10 and having a printed circuit board with a connector defining a number of electrical contacts. When game cartridge 12 is inserted into slot 18 of game machine 10, the cartridge electrical contacts mate with corresponding “edge connector” electrical contacts within game machine 10. This action electrically connects the printed circuit board to the electronics within game machine 10. In this example, the printed circuit board of game cartridge 12 at least includes a read-only memory (ROM) 42 and a read/write memory (e.g., SRAM) 46. ROM 42 stores instructions and other information pertaining to a particular video game. ROM 42 for one game cartridge 12 may, for example, contain instructions and other information for an adventure game while the ROM of another game cartridge 12 may contain instructions and other information for a car race game or an educational game, for example. To play a game, a user of game machine 10 need only plug the appropriate game cartridge into slot 18 of game machine 10 thereby connecting the cartridge's ROM 42 (and other any circuitry it may contain) to game machine 10. This enables the game machine circuitry to access information contained within ROM 42 (and read/write memory 46), which information controls the game machine to play the appropriate video game by displaying images and reproducing sound as specified under control of the ROM game program information. Read/write memory 46 is used to store data such as game backup data.
In accordance with the game program, character data supplied from game cartridge 12 and the controller data from operating keys 48a-48e, CPU 25 executes data processing and writes display data into a display RAM 52, using an extended RAM 50 when necessary. As a result of the data processing by CPU 25, pixels of color LCD 16 are controlled and sound signals to be output are adjusted in level by volume controls 54 and 56, and then outputted to a speaker 58 and/or an earphone jack 60. Color LCD 16 displays still or moving images, and sound signals output from speaker 58 and/or earphone jack 60 include game sound effects, voices and music.
Generally speaking, to use game machine 10 to play a game, a user selects a game cartridge 12 containing a desired video game, and inserts that game cartridge into slot 18 of game machine 10, thereby electrically connecting ROM 42 and other cartridge electronics to game machine 10. The user then operates a power switch 21 (see FIG. 1B) to turn on game machine 10 and operates operating keys 48a-48e to control video game play.
The gaming experience depends on the quality of the content provided to the user, where the quality includes the resolution of the display (both in pixel and color resolution), the tonal quality of the sound output, and how rapidly the output can change in response to the user's input. The memory and computational limitations of embedded devices, such as game machine 10, require that audio and video data be stored in the removable memory unit, such as game cartridge 12, in compressed format which must be decompressed prior to being displayed.
The ability of embedded devices to play back compressed audio and video data is limited by the memory and processing power of game machine 10, the amount of memory in game cartridge 12, and the speed at which the game machine 10 can read information from the game cartridge. It is common to provide more content by compressing audio and video data through “lossy” methods that rely on the fact that not all of a sound or visual content is perceived by a person due to perception limitations of people, and that not all displays or sound systems can respond to very high or very low frequencies. Thus, for example, the human eye is not necessarily able to detect slight variations in position or color on a display. In addition, displays may not be able to present all of the information in the original content, and thus the storage and transmission of that information is a poor use of limited storage or bandwidth resources. It is thus possible to store sound using lossy compression methods that is where the process of compressing and then reconstructing an image results in the loss of some information. Many prior art lossy compression codecs, such as the MPEG-4 video codec, achieve good compression ratios, but require a rather advanced level of signal processing that is not available on systems having limited resources.
While the prior art use of codecs may be effective in some environments, the required memory and processor speed is not within the capabilities of most embedded devices, such as cell phones, personal digital assistants, and portable games machines. Thus there is a need in the art for a method and apparatus that result in compression at least as good as prior art codecs. In addition, it is preferable that the apparatus is compatible with existing hardware, and that it contains an implementation of the inventive method for improving the performance of prior art units that can accept programming cartridges.